/*
 * @Author: 9ilk 3535851673@qq.com
 * @Date: 2024-11-06 21:31:02
 * @LastEditors: 9ilk 3535851673@qq.com
 * @LastEditTime: 2024-11-07 23:07:33
 * @FilePath: /zhuang/sharemem/Server.cc
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include <iostream>
using namespace std;
#include "ShareMemory.hpp"

int main()
{
    // 创建共享内存
    Sm.CreateShm();
    // 挂接
    Sm.AttachShm();
    // sleep(10);
    //  通信
    char *strinfo = (char *)Sm.GetAddr();
    // printf("Server 虚拟地址：%p\n", strinfo);
    // sleep(10);
    while (true)
    {
        printf("%s\n", strinfo);
        sleep(1);
    }

    // 去关联
    Sm.DetachShm();

    // 删除共享内存
    Sm.DeleteShm();

    return 0;
}

// int main()
// {
//     // 形成key
//     key_t k = ::ftok(gfilename.c_str(), procid);
//     cout << "k :" << ToHex(k) << endl;
//     if (k < 0)
//     {
//         cerr << "key error" << endl;
//         return 1;
//     }
//     //1.创建共享内存 && 获取
//     int shmid = ::shmget(k,gshmSize,IPC_CREAT | IPC_EXCL | gmod);
//     if(shmid < 0)
//     {
//         cerr << "shmget error" << endl;
//         return 2;
//     }
//     cout << "shmid: " << shmid << endl;
//     sleep(5);

//     //2.共享内存挂接到自己的地址空间中
//     void* ret = shmat(shmid,nullptr,0);
//     cout << "attach done..." <<  (long long*)ret <<endl;
//     //通信

//     sleep(5);
//     //3.去关联
//     shmdt(ret);
//     cout << "detach done.." << endl;
//     //4.删除共享内存
//     shmctl(shmid,IPC_RMID,nullptr);
//     cout << "delete done..." << endl;
//     return 0;
// }